Documenting Implementation Decisions with Code Annotations
نویسندگان
چکیده
Software developers make various decisions when implementing software. For instance, they decide on how to implement an algorithm most efficiently or in which way to process user input. When code is revisited during maintenance, the underlying decisions need to be understood and possibly adjusted to the current situation. Common documentation approaches like JavaDoc neither cover knowledge related to decisions explicitly, nor are they integrated closely with knowledge management. In consequence, decision knowledge is rarely documented and therefore inaccessible, especially when developers have left the team. So, effective maintenance is hindered. We have developed an annotation model for decision knowledge and integrated it with the knowledge management tool UNICASE. The approach enables developers to document decisions within code without tool switches to lower their documentation effort. Afterwards, maintainers can exploit the embedded decision knowledge and follow links to external knowledge. This paper presents the approach and evaluation results of a first case study, which indicate its practicability.
منابع مشابه
Supporting Program Comprehension for Refactoring Operations with Annotations
Restructuring a program is a concept that aims at increasing the maintainability of a piece of code by changing its structure. The term refactoring is often used synonymously, especially when the observable behavior of a program should not change when transforming the structure of the software to a more sophisticated level, e.g. by using design patterns. Behaviour-conserving program transformat...
متن کاملAnnotation-Based Diagrams for Shared-Data Concurrency
In languages such as Java and Ada, there are a number of significant concurrency-related design decisions that may not be manifest locally in code. These include, for example, the identification of shared state, how that state is protected, which threads may visit that state, and so on. These decisions relate threads, code, and shared data. We describe new UML-style diagrams that can help make ...
متن کاملLanguage composition using source code annotations
In this paper we examine source code annotations from the viewpoint of formal languages – we discuss their abstract syntax, concrete syntax, and semantics, thus showing the correspondence between annotations and formal languages. We propose to consider a set of all annotations and their parameters processed by the same reference implementation (they belong to the same domain) to be called an an...
متن کاملReview and Analysis of The Issues of Unified Modeling Language for Visualizing, Specifying, Constructing and Documenting the Artifacts of a Software-Intensive System
The UML allows us to specify models in a precise, complete and unambiguous manner. In particular, the UML addresses the specification of all important decisions regarding analysis, design and implementation. Although UML is not a visual programming language, its models can be directly connected to a vast variety of programming languages. This enables a dual approach to software development: the...
متن کاملAutomated Synthesis of Hardware Process Networks from Sequential C Code
In this thesis, we present a methodology for the automated generation of complete hardware implementations from C input specifications. Our methodology is based on the Kahn Process Network (KPN) Model of Computation (MoC). By leveraging previous research, we can automatically obtain a parallel KPN representation of sequential C input code. Next, we synthesize RTL implementations of the KPN node...
متن کامل